﻿/* Includes: */
#include "GraphEngine.h"

GrSceneAbstract::GrSceneAbstract( bool showMenuBtn, bool portrait )
    : p_showMenuBtn( showMenuBtn ) , p_portrait( portrait )
{
    if ( p_portrait ) {
        CCDirector::sharedDirector()->setDeviceOrientation( CCDeviceOrientationLandscapeRight );
    }
    
    CCScene::init();
}

void GrSceneAbstract::onEnter()
{
    CCScene::onEnter();

    /* Проведем начальную подготовку сцены. */
    prepareScene();
}

void GrSceneAbstract::prepareScene()
{
    /* Если сцена требует отображение кнопки выхода в главное меню, то */
    if ( p_showMenuBtn ) {
        /* добавим кнопку или строку для возврата в главное меню. */
        CCLabelTTF* label = CCLabelTTF::labelWithString( "Back", "Arial", 20 );
        CCMenuItemLabel* pMenuItem = CCMenuItemLabel::itemWithLabel( label, this, 
                                            menu_selector( GrSceneAbstract::mainMenuCallback ) );

        CCMenu* pMenu = CCMenu::menuWithItems( pMenuItem, NULL );
        CCSize s = CCDirector::sharedDirector()->getWinSize();
        pMenu->setPosition( CCPointZero );
        pMenuItem->setPosition( CCPointMake( s.width - 50, 25 ) );

        addChild( pMenu, 1 );
    }
}

void GrSceneAbstract::mainMenuCallback( CCObject* pSender )
{
    /* Вернемся в главное меню. */
    mainMenu();
}

void GrSceneAbstract::mainMenu()
{
    GE_SHOW_MAIN_MENU;
}
